package cn.nange.eurekaclient2.controller;

import com.netflix.hystrix.contrib.javanica.annotation.HystrixCommand;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;

import java.util.HashMap;

@RestController
public class TestController {
    @Autowired
    private RestTemplate restTemplate;


    @HystrixCommand(fallbackMethod = "testFallback")
    @RequestMapping("testRest")
    public String testRest() {

        /**Test
         * getForEntity 返回值是响应体对象 包含响应的状态码 和 响应体（数据）
         *
         * getForObject 返回值就是数据
         */

        String forObject = restTemplate.getForObject("http://client-1/helloClint1?name=Nan", String.class);

        return "客户端2请求客户端1获取的数据为："+forObject;
    }

    public String testFallback(){
        return "请求出错！";
    }

    @RequestMapping("testRestPost")
    public String testRestPost(){
        //        通过map封装数据
        HashMap map = new HashMap();
        map.put("name","Her");
        /**
         * 参数1 url
         * 参数2 携带参数
         * 参数3 响应的数据类型
         */
        String forObject = restTemplate.postForObject("http://client-1/testPost", map, String.class);

        return "客户端2请求客户端1获取的数据为："+forObject;
    }
}
